package org.example.wumeng.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.example.wumeng.pojo.Book;

import java.util.List;

@Mapper
public interface T_bookMapper {

    /**
     * 分页查询医书列表
     */
    List<Book> selectWithCondition(@Param("title") String title,
                                   @Param("author") String author,
                                   @Param("category") String category,
                                   @Param("offset") int offset,
                                   @Param("size") int size);

    /**
     * 统计查询条件下的总数
     */
    Long countWithCondition(@Param("title") String title,
                            @Param("author") String author,
                            @Param("category") String category);

    /**
     * 根据ID查询医书
     */
    Book selectById(Long id);

    /**
     * 根据ID查询医书全文内容
     */
    String selectFullContentById(Long id);

    /**
     * 插入医书
     */
    int insert(Book book);

    /**
     * 更新医书
     */
    int updateById(Book book);

    /**·
     * 删除医书
     */
    int deleteById(Long id);

    /**
     * 按分类查询医书
     */
    List<Book> selectByCategory(@Param("category") String category,
                                @Param("offset") int offset,
                                @Param("size") int size);

    /**
     * 统计分类下的医书数量
     */
    int countByCategory(@Param("category") String category);

    /**
     * 获取分类统计
     */
    List<java.util.Map<String, Object>> getCategoryStatistics();
}